package com.ogawa.base.utils;

import android.content.Context;

import com.ogawa.base.base.BaseApp;

import java.io.Serializable;



public class ACacheUtils {

    public static Context getContext(){
        return BaseApp.Companion.getAppContext();
    }

    public static void clear(Context context){
        ACache.get(context).clear();
    }



    public static Context context = BaseApp.Companion.getAppContext();

    public static void putString(String key, String value){
        ACache aCache = ACache.get(context);
        aCache.put(key, value);
    }

    public static String getString(String key, String defaults){
        ACache aCache = ACache.get(context);
        String ret = aCache.getAsString(key);
        return ret == null ? defaults : ret;
    }

    public static void putInt(String key, int value){
        ACache aCache = ACache.get(context);
        aCache.put(key, value);
    }

    public static int getInt(String key, int defaults){
        ACache aCache = ACache.get(context);
        Integer ret = (Integer) aCache.getAsObject(key);
        return ret == null ? defaults : ret;
    }

    public static void putFloat(String key, float value){
        ACache aCache = ACache.get(context);
        aCache.put(key, value);
    }

    public static float getFloat(String key, float defaults){
        ACache aCache = ACache.get(context);
        Float ret = (Float) aCache.getAsObject(key);
        return ret == null ? defaults : ret;
    }
    public static void putLong(String key, long value){
        ACache aCache = ACache.get(context);
        aCache.put(key, value);
    }

    public static long gettLong(String key, long defaults){
        ACache aCache = ACache.get(context);
        Long ret = (Long) aCache.getAsObject(key);
        return ret == null ? defaults : ret;
    }

    public static void putBoolean(String key, boolean value){
        ACache aCache = ACache.get(context);
        aCache.put(key, value);
    }

    public static boolean getBoolean(String key, boolean defaults){
        ACache aCache = ACache.get(context);
        Boolean ret = (Boolean) aCache.getAsObject(key);
        return ret == null ? defaults : ret;
    }


    public static void putObject(String key, Serializable value){
        ACache aCache = ACache.get(context);
        aCache.put(key, value);
    }


    public static Object getObject(String key, Serializable defaults){
        ACache aCache = ACache.get(context);
        Serializable ret = (Serializable) aCache.getAsObject(key);
        return ret == null ? defaults : ret;
    }
}
